Update Readme.md
[EroSomnia.git] / Point and Click Game1 / SFXLibrary.h
blob48e4da7665aaf21d04e5ab2a4dbb488674986875
1 #pragma once
2 #pragma once
3 #include "SFX.h"
5 #include <fstream>
7 #include <boost\archive\binary_iarchive.hpp>
8 #include <boost\archive\binary_oarchive.hpp>
9 #include <boost\serialization\shared_ptr.hpp>
11 class SFXLibrary {
13 friend class boost::serialization::access;
15 template<class Archive>
16 void serialize(Archive & ar, const unsigned int version) {
17 ar & ClickSFX;
18 ar & NoSFX;
19 ar & SelectionSFX;
20 ar & SelectionSFX2;
21 ar & OpenSFX;
22 ar & DerobeSFX;
23 ar & RobeSFX;
25 ar & IntercomSFX;
26 ar & HornSFX;
27 ar & PassingSFX;
28 ar & bangSFX;
29 ar & XingSFX;
31 ar & feSFX;
32 ar & moSFX;
33 ar & fiSFX;
34 ar & masSFX;
35 ar & moan1SFX;
36 ar & neutSFX;
38 ar & failSFX;
39 ar & heartFastSFX;
40 ar & heartMediumSFX;
41 ar & heartSlowSFX;
42 ar & startSFX;
44 ar & pointsSFX;
45 ar & errorSFX;
48 public:
49 SFXLibrary() {
53 void saveSFXLibrary() {
54 std::fstream file;
55 file.open("data/sfx.mage", std::ios::binary | std::fstream::out);
56 boost::archive::binary_oarchive ar(file);
57 std::cout << "SAVED SFX\n";
58 ar << this;
59 file.close();
61 static SFXLibrary loadSFXLibrary() {
62 std::fstream file;
63 SFXLibrary *sl;
64 SFXLibrary slCopy;
65 file.open("data/sfx.mage", std::ios::binary | std::fstream::in);
66 if (file.is_open()) {
67 boost::archive::binary_iarchive archive(file);
68 archive >> sl;
69 slCopy = *sl;
71 else {
72 std::cout << "SFXLIBRARY NOT FOUND";
73 sl = new SFXLibrary();
74 slCopy = *sl;
76 file.close();
78 return slCopy;
81 SFX* ClickSFX;
82 SFX* NoSFX;
83 SFX* SelectionSFX;
84 SFX* SelectionSFX2;
85 SFX* OpenSFX;
86 SFX* DerobeSFX;
87 SFX* RobeSFX;
89 SFX* IntercomSFX;
90 SFX* HornSFX;
91 SFX* PassingSFX;
92 SFX* bangSFX;
93 SFX* XingSFX;
95 SFX* feSFX;
96 SFX* moSFX;
97 SFX* fiSFX;
98 SFX* masSFX;
99 //TO ADD
100 SFX* moan1SFX;
101 SFX* neutSFX;
103 SFX* failSFX;
104 SFX* heartFastSFX;
105 SFX* heartMediumSFX;
106 SFX* heartSlowSFX;
107 SFX* startSFX;
108 //TO END
110 SFX* pointsSFX;
111 SFX* errorSFX;
113 void configureLibrary() {
114 ClickSFX->loadFromByteArray();
115 NoSFX->loadFromByteArray();
116 SelectionSFX->loadFromByteArray();
117 SelectionSFX2->loadFromByteArray();
118 OpenSFX->loadFromByteArray();
119 DerobeSFX->loadFromByteArray();
120 RobeSFX->loadFromByteArray();
122 IntercomSFX->loadFromByteArray();
123 HornSFX->loadFromByteArray();
124 PassingSFX->loadFromByteArray();
125 bangSFX->loadFromByteArray();
126 XingSFX->loadFromByteArray();
128 feSFX->loadFromByteArray();
129 moSFX->loadFromByteArray();
130 fiSFX->loadFromByteArray();
131 masSFX->loadFromByteArray();
132 moan1SFX->loadFromByteArray();
133 neutSFX->loadFromByteArray();
135 failSFX->loadFromByteArray();
136 heartFastSFX->loadFromByteArray();
137 heartMediumSFX->loadFromByteArray();
138 heartSlowSFX->loadFromByteArray();
139 startSFX->loadFromByteArray();
141 pointsSFX->loadFromByteArray();
142 errorSFX->loadFromByteArray();
145 void clearLibrary() {
146 ClickSFX->clearSFX();
147 NoSFX->clearSFX();
148 SelectionSFX->clearSFX();
149 SelectionSFX2->clearSFX();
150 OpenSFX->clearSFX();
151 DerobeSFX->clearSFX();
152 RobeSFX->clearSFX();
154 IntercomSFX->clearSFX();
155 HornSFX->clearSFX();
156 PassingSFX->clearSFX();
157 bangSFX->clearSFX();
158 XingSFX->clearSFX();
160 feSFX->clearSFX();
161 moSFX->clearSFX();
162 fiSFX->clearSFX();
163 masSFX->clearSFX();
164 moan1SFX->clearSFX();
165 neutSFX->clearSFX();
167 failSFX->clearSFX();
168 heartFastSFX->clearSFX();
169 heartMediumSFX->clearSFX();
170 heartSlowSFX->clearSFX();
171 startSFX->clearSFX();
173 pointsSFX->clearSFX();
174 errorSFX->clearSFX();
177 bool test = false;